package com.jinke.api.common.domain.tasms;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * @projectName:
 * @title: TASMSSendSMSDTO
 * @description: 湖南塔澳通信 发送短信 请求参数体
 * @see:
 * @author: hhp
 * @version: 1.0.0
 * @createTime: 2024/8/23 15:30
 */
@Data
@Accessors(chain = true)
public class TASMSSendSMSDTO {
    /**
     * 必传 String 通道编号。平台可查看
     */
    private String username;
    /**
     * 必传 String 随机字符串，防止篡改
     */
    private String nonceStr;
    /**
     * 必传 String 时间戳（毫秒），防止重放
     */
    private String timestamp;
    /**
     * 必传 String 签名类型（MD5, SHA256, SHA348, SM3,
     *     RIPEMD160, SHA224, SHA512）
     */
    private String signType;
    /**
     * 必传 String 签名串，参考签名规则
     */
    private String sign;
    /**
     * 非必传 String 发送 ID。默认随机 6 位数字
     */
    private String spNumber;
    /**
     * 必传 String 发送内容。可使用占位符“{}”代替变量，如：
     *     尊敬的{}客户，您好！您订购的{}商品已配送。
     */
    private String content;
    /**
     * 必传 List 号码集合。最多 100 个号码
     */
    private List<Phone> phones;

    @Data
    public static class Phone {
        /**
         * 必传 String 手机号码。必须包含国家区号(如：中国 8615789894545)
         */
        private String phone;
        /**
         * 非必传 String 变量集合。若无值，不可并入签名加密
         */
        private List<String> variables;
    }
}
